package org.dromara.system.domain.bo;

import org.checkerframework.checker.guieffect.qual.UI;
import org.dromara.system.domain.AppProcurementDetail;
import org.dromara.system.domain.AppProcurementPlan;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.util.List;

/**
 * 采购计划业务对象 app_procurement_plan
 *
 * @author Lion Li
 * @date 2025-09-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = AppProcurementPlan.class, reverseConvertGenerate = false)
public class AppProcurementPlanBo extends BaseEntity {


    /**
     *      *  司机  type  1->抢单大厅  2->待确认承运
     *      *  仓库管理员  type  3->送达待入库
     *      *  质检员  type  4->待验订单  5->质检完成订单
     *      财务员  type  6->待结算  7->已结算
     */
    private Integer type;


    /**
     * 订单状态 0待下发 1已下发/待确认 2待接单 3待发货 4运输中 5已送达 6已完成 7费用待确认 8已确认费用 10待支付 11已支付 12 退货中
     */
    private Integer orderStatus;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 采购计划编号
     */
    private String planCode;

    /**
     * 上级采购计划编号
     */
    private String pid;

    /**
     * 是否确认承运 0否 1是
     */
    private Integer stayCarrier;

    /**
     * 采购公司id
     */
    private String purCompanyId;


    /**
     * 供应商id
     */
    private String supplierId;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 计划类型 0年度计划 1季度计划 2月度计划 3日计划
     */
    private Long planType;

    /**
     * 季度数
     */
    private Long quarterNum;

    /**
     * 公司ID
     */
    private Long companyId;

    /**
     * 公司名称
     */
    private String companyName;

    /**
     * 审核状态 0审核中 1审核成功 2审核失败
     */
    private Long auditStatus;

    /**
     * 失败原因
     */
    private String failReason;

    /**
     * 备注
     */
    private String remark;

    /**
     * 采购详情
     */
    private List<AppProcurementDetail> appProcurementDetails;

    /**
     * 子采购计划
     */
    private List<AppProcurementPlanBo> appProcurementPlanBos;

    /**
     * 下发状态 0未下发 1已下发
     */
    private Integer sentStatus;

}
